package com.yourwork.basedao;

import java.io.Serializable;
import java.util.List;

public interface BaseDao {
	//save方法的作用是插入一条记录
		public void save(Object obj);
		
		//saveOrUpdate方法的作用是什么？
		public void saveOrUpdate(Object obj);
		
		//update方法的作用是修改一条记录
		public void update(Object obj);
		
		//delete方法的作用是删除一条记录
		public void delete(Object obj);
		
		/**
		 * deleteById方法的作用是根据主键删除对应的记录
		 * @param clazz 要删除记录的数据库表映射类
		 * @param id 要删除的记录的主键值
		 */
		public void deleteById(Class clazz,Serializable id);
		
		//getById方法的作用是根据Id找记录
		public Object getById(Class clazz,Serializable id);
		
		//queryByHql方法的作用是根据HQL语句查询
		public List queryByHql(String hql,List paramList,int firResult,int maxResults);
		
		//queryUniqueByHql方法的作用是根据HQL语句进行唯一结果集的查询，一般用于统计查询（聚合查询）的HQL语句
		public Object queryUniqueByHql(String hql,List paramList);
}
